package com.baitengsoft.patentservicemonitor.job.model;

import com.baitengsoft.patentservicemonitor.job.utils.CloudUtils;
import com.baitengsoft.patentservicemonitor.job.utils.GetPatenteeType;
import org.apache.commons.lang.StringUtils;

import java.util.ArrayList;

/**
 * @author wangze
 * @date 2018-01-30 16:01.
 **/
public class PacPatentUpdateModel {
    /**
     * 主键
     */
    private Integer id;
    /**
     * 平台
     */
    private Integer platformid;
    /**
     * 专利号
     */
    private String an;
    /**
     * 专利名称
     */
    private String ti;
    /**
     * 专利类型
     */
    private Integer clazz;
    /**
     * 法律状态
     */
    private String lsnt;
    /**
     * 专利申请日
     */
    private String ad;

    /**
     * 专利授权日
     */
    private String apd;
    /**
     * 专利公开日
     */
    private String pd;
    /**
     * 专利失效日
     */
    private Object ivd;
    /**
     * 专利失效日
     */
    private String cagc;
    /**
     * 发明人
     */
    private String in;
    /**
     * 专利申请人(权利人)
     */
    private String pa;
    /**
     * 变更后，最后一次专利申请人(权利人)
     */
    private String cpa1;
    /**
     * 变更前第一专利申请/权利人
     */
    private String ppa1;
    /**
     * 专利地址
     */
    private String aa;
    /**
     * 专利地址----权利人地址---上一个权利人地址
     */
    private String paa;

    /**
     * 变更后，最后一次专利地址---当前权利人地址
     */
    private String caa;
    /**
     * 转让日期日
     */
    private Object tfd;

    /**
     * 实审日期
     */
    private String sed;

    /**
     * IPC分类
     */
    private String ic1;


    /**
     * 失效原因（包括正常状态及失效状态）
     */
    private String lsn2;


    private String cdn;

    private String pdn;

    /**
     * 设置：主键(内)
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取：主键(内)
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置：所属平台ID
     */
    public void setPlatformid(Integer platformid) {
        this.platformid = platformid;
    }

    /**
     * 获取：所属平台ID
     */
    public Integer getPlatformid() {
        return platformid;
    }


    /**
     * 设置：
     */
    public void setAn(String an) {
        this.an = an;
    }

    /**
     * 获取：
     */
    public String getAn() {
        return an;
    }


    /**
     * 设置：
     */
    public void setTi(String ti) {
        this.ti = ti;
    }

    /**
     * 获取：
     */
    public String getTi() {
        return ti;
    }


    /**
     * 设置：
     */
    public void setClazz(Integer clazz) {
        this.clazz = clazz;
    }

    /**
     * 获取：
     */
    public Integer getClazz() {
        return clazz;
    }

    /**
     * 设置：
     */
    public void setLsnt(String lsnt) {
        this.lsnt = lsnt;
    }

    /**
     * 获取：
     */
    public String getLsnt() {
        return lsnt;
    }

    /**
     * 设置：
     */
    public void setAd(String ad) {
        this.ad = ad;
    }

    /**
     * 获取：
     */
    public String getAd() {
        return ad;
    }


    /**
     * 设置：
     */
    public void setApd(String apd) {
        this.apd = apd;
    }

    /**
     * 获取：
     */
    public String getApd() {

        if (StringUtils.isBlank(this.apd)) {
            return StringUtils.EMPTY;
        }
        return apd;
    }

    /**
     * 设置：
     */
    public void setPd(String pd) {
        this.pd = pd;
    }

    /**
     * 获取：
     */
    public String getPd() {
        if (StringUtils.isBlank(this.pd)) {
            return StringUtils.EMPTY;
        }
        return pd;
    }


    /**
     * 设置：
     */
    public void setIvd(Object ivd) {
        this.ivd = ivd;
    }

    /**
     * 获取：
     */
    public Object getIvd() {
        return this.ivd;
    }


    /**
     * 设置：
     */
    public void setCpa1(String cpa1) {
        this.cpa1 = cpa1;
    }

    /**
     * 获取：
     */
    public String getCpa1() {
        return cpa1;
    }

    /**
     * 设置：
     */
    public void setPpa1(String ppa1) {
        this.ppa1 = ppa1;
    }

    /**
     * 获取：
     */
    public String getPpa1() {
        return ppa1;
    }

    /**
     * 设置：
     */
    public void setPaa(String paa) {
        this.paa = paa;
    }

    /**
     * 获取：
     */
    public String getPaa() {
        return paa;
    }

    /**
     * 设置：
     */
    public void setAa(String aa) {
        this.aa = aa;
    }

    /**
     * 获取：
     */
    public String getAa() {
        return aa;
    }

    /**
     * 设置：
     */
    public void setCaa(String caa) {
        this.caa = caa;
    }

    /**
     * 获取：
     */
    public String getCaa() {
        return caa;
    }

    /**
     * 设置：
     */
    public void setTfd(Object tfd) {
        this.tfd = tfd;
    }

    /**
     * 获取：
     */
    public Object getTfd() {
        return tfd;
    }

    /**
     * 设置：
     */
    public void setIc1(String ic1) {
        this.ic1 = ic1;
    }

    /**
     * 获取：
     */
    public String getIc1() {
        return ic1;
    }


    /**
     * 设置：
     */
    public void setLsn2(String lsn2) {
        this.lsn2 = lsn2;
    }

    /**
     * 获取：
     */
    public String getLsn2() {
        return lsn2;
    }

    public String getIn() {
        if (StringUtils.isBlank(this.in)) {
            return StringUtils.EMPTY;
        }
        if (this.in.indexOf(";") != -1) {
            return this.in.split(";")[0];
        }
        return this.in;
    }

    public void setIn(String in) {

        this.in = in;
    }

    public String getPa() {
        if (StringUtils.isBlank(this.pa)) {
            return StringUtils.EMPTY;
        }
        if (this.pa.indexOf(";") != -1) {
            return this.pa.split(";")[0];
        }
        return this.pa;
    }

    public void setPa(String pa) {
        this.pa = pa;
    }

    public String getSed() {
        return this.sed;
    }

    public void setSed(String sed) {
        this.sed = sed;
    }

    public String getCagc() {
        return cagc;
    }

    public void setCagc(String cagc) {
        this.cagc = cagc;
    }
//以下为扩展

    /**
     * 获取：法律状态
     */
    public Integer getLawstate() {

        return CloudUtils.patentType(lsnt);
    }

    /**
     * 获取：当前权力人类型
     */
    public Integer getApplyPersonType() {
        if (cpa1.trim().length() == 0)
            return 0;
        return CloudUtils.applyPersonType(GetPatenteeType.findType(cpa1));
    }

    /**
     * 获取：变更前权力人类型
     */
    public Integer getApplyPersonTypePrevious() {
        if (ppa1.trim().length() == 0)
            return 0;
        return CloudUtils.applyPersonType(GetPatenteeType.findType(ppa1));
    }

    /**
     * 获取：国民经济分类
     */
    public String getChinaIPCID() {

        return "";
    }

    public String getCdn() {
        return cdn;
    }

    public void setCdn(String cdn) {
        this.cdn = cdn;
    }

    public String getPdn() {
        return pdn;
    }

    public void setPdn(String pdn) {
        this.pdn = pdn;
    }

    //    private Object objectHandle(Object obj) {
//        if (obj == null) {
//            return null;
//        }
//        String str = String.valueOf(obj);
//        if (StringUtils.isBlank(str)) {
//            return null;
//        }
//        if (str.indexOf(";") != -1) {
//            return Arrays.asList(str.split(";"));
//        }
//        return Arrays.asList(str);
//    }


    public PacPatentinfoModel Convert() {
        PacPatentinfoModel model = new PacPatentinfoModel();
        model.setApd(this.getApd());
        model.setSed(this.getSed());
        model.setAa(this.getAa());
        model.setAd(this.getAd());
        model.setCagc(this.getCagc());
        model.setAn(this.getAn());
        model.setCaa(this.getCaa());
        model.setClazz(this.getClazz());
        model.setCpa1(this.getCpa1());
        model.setIc1(this.getIc1());
        model.setId(this.getId());
        model.setIn1(this.getIn());
        model.setIvd(this.getIvd());
        model.setLsn2(this.getLsn2());
        model.setLsnt(this.getLsnt());
        model.setPa1(this.getPa());
        model.setPaa(this.getPaa());
        model.setPd(this.getPd());
        model.setPlatformid(this.getPlatformid());
        model.setPpa1(this.getPpa1());
        model.setTfd(this.getTfd());
        model.setTi(this.getTi());
        model.setId(this.getId());
        model.setCdn(this.getCdn());
        model.setPdn(this.getPdn());
        return model;
    }


}
